package com.ruoyi.system.service;

import java.math.BigDecimal;
import java.util.List;
import com.ruoyi.system.domain.IaeInternalTransfer;
import com.ruoyi.system.domain.IaeVoucher;

/**
 * 内部转账记录Service接口
 * 
 * @author ruoyi
 * @date 2025-02-27
 */
public interface IIaeInternalTransferService 
{
    /**
     * 查询内部转账记录
     * 
     * @param transferId 内部转账记录主键
     * @return 内部转账记录
     */
    public IaeInternalTransfer selectIaeInternalTransferById(Long transferId);

    /**
     * 查询内部转账记录列表
     * 
     * @param iaeInternalTransfer 内部转账记录
     * @return 内部转账记录集合
     */
    public List<IaeInternalTransfer> selectIaeInternalTransferList(IaeInternalTransfer iaeInternalTransfer);

    /**
     * 新增内部转账记录
     * 
     * @param iaeInternalTransfer 内部转账记录
     * @return 结果
     */
    public int insertIaeInternalTransfer(IaeInternalTransfer iaeInternalTransfer);

    /**
     * 修改内部转账记录
     * 
     * @param iaeInternalTransfer 内部转账记录
     * @return 结果
     */
    public int updateIaeInternalTransfer(IaeInternalTransfer iaeInternalTransfer);

    /**
     * 批量删除内部转账记录
     * 
     * @param transferIds 需要删除的内部转账记录主键集合
     * @return 结果
     */
    public int deleteIaeInternalTransferByIds(Long[] transferIds);

    /**
     * 删除内部转账记录信息
     * 
     * @param transferId 内部转账记录主键
     * @return 结果
     */
    public int deleteIaeInternalTransferById(Long transferId);

    String importTransfer(List<IaeInternalTransfer> transferList, boolean updateSupport, String operName);

    void insertTransfer(IaeInternalTransfer transfer);

    void updateTransfer(IaeInternalTransfer transfer);

    IaeVoucher generateVoucher(IaeInternalTransfer iaeInternalTransfer);
}
